package configs

import "path/filepath"

const (
	// 配置文件路径
	ScriptsConfigFile = "scripts_config.json"

	// 目录配置
	VenvDir     = "venvs"     // 虚拟环境目录
	UploadDir   = "uploads"   // 上传文件目录
	StaticDir   = "static"    // 静态文件目录
	TemplateDir = "templates" // 模板目录

	// 输出限制配置
	MaxOutputLines        = 1000 // 每个脚本最多保存的输出行数
	MaxStoreTime          = 3600 // 输出最多保存时间（秒）
	OutputCleanupInterval = 300  // 清理间隔（秒）
)

// GetAbsolutePath 获取相对于项目根目录的绝对路径
func GetAbsolutePath(relativePath string) string {
	return filepath.Join(".", relativePath)
}

// Config 应用配置
type Config struct {
	Port           string   `json:"port"`
	Host           string   `json:"host"`
	Debug          bool     `json:"debug"`
	AllowedFileExt []string `json:"allowed_file_ext"`
	MaxUploadSize  int64    `json:"max_upload_size"`
}

// DefaultConfig 默认配置
var DefaultConfig = Config{
	Port:           ":8080",
	Host:           "localhost",
	Debug:          true,
	AllowedFileExt: []string{".py", ".txt", ".json", ".yaml", ".yml"},
	MaxUploadSize:  50 << 20, // 50MB
}
